/**
 * 面向对象的三大特性：封装、继承、多态
 * 
 * Dart中的类的继承：
 *  1.子类使用extends 关键词来继承父类
 *  2.子类会集成父类里面可见的属性和方法 但是不会继承构造函数
 *  3.子类能复写父类的方法 getter 和 setter
 */
class Person {
  String name = '张三';
  num age = 20;
  Person(this.name, this.age);
  void printInfo() {
    print("${this.name}----${this.age}");
  }
}

class Web extends Person {
  String sex;
  Web(String name, num age, String sex) : super(name, age) {
    this.sex = sex;
  }
  //覆写父类方法
  @override
  void printInfo() {
    print("姓名：${this.name}----年龄：${this.age} ---- 性别：${this.sex}");
  }

  void run() {
    print("${this.name}----${this.age} ---- ${this.sex}");
  }
}

main(List<String> args) {
  Web web = new Web('曾卓', 22, '女');
  print(web.name);
  web.printInfo();
  web.run();
}
